#include "app_runner.h"
#include "ota_version.h"
#include "daemon_runner.h"
// ./gateway app/ota/daemon
// ./gateway app   argv[0] = ./gateway   argv[1] = app
int main(int argc, char const *argv[])
{
    if (argc == 1)
    {
        log_info("请传入参数: app|ota|daemon");
    }
    else if (strcmp(argv[1], "app") == 0)
    {
        app_runner_run();
    }
    else if (strcmp(argv[1], "ota") == 0)
    {
        // ota_version_check();
        ota_version_auto_update();
    }
    else if (strcmp(argv[1], "daemon") == 0)
    {
        daemon_runner_run();
    }

    return 0;
}
/*
c编译过程:
    预处理：将#include、宏定义、条件编译、空格、注释、换行符等处理成C语言可识别的代码
    编译:   将C语言代码编译成汇编代码
    汇编:   将汇编代码编译成目标代码
    链接:   将目标代码和一些库文件链接成可执行文件

make
编译环境:
    linux  x86_64
运行环境:
    linux  armv7
 两者不一致, 就需要做交叉编译

 ---------------------
 ota升级:
    1. 首先判服务器有没有最新的软件版本(和当前的运行的软件的版本做比较)
    2. 如果有, 就下载最新的软件版本
    3. 做校验
        哈希校验
        服务器对软件做hash得到一个 hash值a
        网关程序下载之后,也做一个hash值b
        如果a和b一样,则校验通过
    3. 验证运行新的软件

服务器准备:
    1. 新的软件版本号
         major
         minor
         patch
    2. 新的网关程序
    3. hash值

*/
